#include <sys/types.h> /* bibliothèque pour les sockets */
#include <sys/socket.h> /* bibliothèque pour les sockets */
#include <arpa/inet.h> /* bibliothèque pour htons */
#include <netdb.h> /* bibliothèque pour gethostbyname */
#include <unistd.h> /* bibliothèque pour close */
#include <stdlib.h>
#include <stdio.h>
#include <netinet/in.h>
#include <string.h>
#define INVALID_SOCKET -1
/*struct in_addr
{
    u_long s_addr;

};

struct sockaddr_in
{
    short sin_family;
    u_short sin_port;
    struct in_addr sin_addr;
    char sin_zero[8];   
};

struct hostent 
{
    char *h_name;
    char **h_aliases;
    int h_addrtype;
    int h_length;
    char **h_addr_list;
};
*/
void main (int argc,char **argv)
{   
    
    int i;
    char *nomServeur="127.0.0.1";
    /*creation de la socket*/
    struct sockaddr_in p;
  
    if(argc < 2)
    {
        fprintf(stderr,"Erreur : pas de port en parametre\n");
        exit(0);
    }
    
    int port = atoi(argv[1]);
    int maSocket = socket(AF_INET, SOCK_STREAM, 0);
   
    if(maSocket == INVALID_SOCKET) 
    {
       error("Erreur dans la creation du socket");
       exit(0);
    }
    
    for(i=0;i<8;i++){
        p.sin_zero[i]=0;
    }
    p.sin_family = AF_INET;
    p.sin_port = htons(port);
    p.sin_addr.s_addr=htonl(INADDR_ANY);
  
    /*construction de l'adresse du serveur*/
    struct hostent *IPMachine;
    IPMachine = gethostbyname(nomServeur); //modifier le nom du serveur
    if (IPMachine == (struct hostent *) NULL)
    {
      fprintf(stderr, "%s: serveur inconnu\n", nomServeur);
      exit(1);
    }
   
    memcpy((char *) &p.sin_addr.s_addr, (char *) IPMachine->h_addr_list[0], IPMachine->h_length);
   
    /*demande de connection*/
    int myConnect = connect(maSocket, (struct sockaddr*)&p, sizeof (p));

    if(myConnect < 0)
    {
       printf("Erreur connexion pas établie\n");
       exit(0);
    }    
    printf("Je me suis connecté\n");
   
	char *var = "test";
	printf("envoie de %s\n",var);
	write(maSocket,var,5);
    
}
